Application virtualization has gained increasing acceptance as a useful technique for providing software applications. Application virtualization allows an application to be installed to and run from within a virtualization environment, thereby isolating the application from a host operating system and other natively installed applications. However, the interaction between native applications and virtualized applications presents many challenges, among them the ability for components within native applications to access resources within virtual environments.
When a software component is loaded within a native application, the component has visibility into the native namespace associated with the native application. However, the component may need to interact with a resource that is not available through the native namespace, but rather is accessed through a virtual namespace associated with the virtual environment. In an example, an active control within a web browser may make a call to a virtualized application that fails because the active control does not have access to the virtual namespace through which the virtualized application can be accessed.
One approach to improve the integration of native applications with virtual environments has involved proxies registered in place of the various components requiring access to the virtual namespace. Invoking a particular component, such as a control, would launch a proxy in its place capable of accessing the virtual namespace. The proxy would then load the original component within the virtual environment.